Implement P0004R1 'Remove Deprecated iostreams aliases' git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@251618 91177308-0d34-0410-b5e6-96231b3b80d8 
diff --git a/include/ios b/include/ios index 8843ed4..1deb5f6 100644 --- a/include/ios +++ b/include/ios 
@@ -114,9 +114,9 @@  public:  // types:  typedef charT char_type; - typedef typename traits::int_type int_type; - typedef typename traits::pos_type pos_type; - typedef typename traits::off_type off_type; + typedef typename traits::int_type int_type; // removed in C++17 + typedef typename traits::pos_type pos_type; // removed in C++17 + typedef typename traits::off_type off_type; // removed in C++17  typedef traits traits_type;    operator unspecified-bool-type() const; @@ -254,14 +254,12 @@  static const fmtflags floatfield = scientific | fixed;    typedef unsigned int iostate; - typedef iostate io_state;  static const iostate badbit = 0x1;  static const iostate eofbit = 0x2;  static const iostate failbit = 0x4;  static const iostate goodbit = 0x0;    typedef unsigned int openmode; - typedef openmode open_mode;  static const openmode app = 0x01;  static const openmode ate = 0x02;  static const openmode binary = 0x04; @@ -270,10 +268,15 @@  static const openmode trunc = 0x20;    enum seekdir {beg, cur, end}; - typedef seekdir seek_dir; + +#if _LIBCPP_STD_VER <= 14 + typedef iostate io_state; + typedef openmode open_mode; + typedef seekdir seek_dir;    typedef _VSTD::streamoff streamoff;  typedef _VSTD::streampos streampos; +#endif    class _LIBCPP_TYPE_VIS Init;   
diff --git a/test/std/depr/depr.ios.members/io_state.pass.cpp b/test/std/depr/depr.ios.members/io_state.pass.cpp index 15bfbf1..6b362d0 100644 --- a/test/std/depr/depr.ios.members/io_state.pass.cpp +++ b/test/std/depr/depr.ios.members/io_state.pass.cpp 
@@ -15,11 +15,16 @@  // typedef T1 io_state;  // };   +// These members were removed for C++17 + +#include "test_macros.h"  #include <strstream>  #include <cassert>    int main()  { +#if TEST_STD_VER <= 14  std::strstream::io_state b = std::strstream::eofbit;  assert(b == std::ios::eofbit); +#endif  } 
diff --git a/test/std/depr/depr.ios.members/open_mode.pass.cpp b/test/std/depr/depr.ios.members/open_mode.pass.cpp index 12a8e94..cf91e7c 100644 --- a/test/std/depr/depr.ios.members/open_mode.pass.cpp +++ b/test/std/depr/depr.ios.members/open_mode.pass.cpp 
@@ -15,11 +15,16 @@  // typedef T2 open_mode;  // };   +// These members were removed for C++17 + +#include "test_macros.h"  #include <strstream>  #include <cassert>    int main()  { +#if TEST_STD_VER <= 14  std::strstream::open_mode b = std::strstream::app;  assert(b == std::ios::app); +#endif  } 
diff --git a/test/std/depr/depr.ios.members/seek_dir.pass.cpp b/test/std/depr/depr.ios.members/seek_dir.pass.cpp index 891a7a3..0dd70c1 100644 --- a/test/std/depr/depr.ios.members/seek_dir.pass.cpp +++ b/test/std/depr/depr.ios.members/seek_dir.pass.cpp 
@@ -15,11 +15,16 @@  // typedef T3 seek_dir;  // };   +// These members were removed for C++17 + +#include "test_macros.h"  #include <strstream>  #include <cassert>    int main()  { +#if TEST_STD_VER <= 14  std::strstream::seek_dir b = std::strstream::cur;  assert(b == std::ios::cur); +#endif  } 
diff --git a/test/std/depr/depr.ios.members/streamoff.pass.cpp b/test/std/depr/depr.ios.members/streamoff.pass.cpp index 4ccfd1f..0c237b3 100644 --- a/test/std/depr/depr.ios.members/streamoff.pass.cpp +++ b/test/std/depr/depr.ios.members/streamoff.pass.cpp 
@@ -15,11 +15,16 @@  // typedef OFF_T streamoff;  // };   +// These members were removed for C++17 + +#include "test_macros.h"  #include <ios>  #include <type_traits>    int main()  { +#if TEST_STD_VER <= 14  static_assert((std::is_integral<std::ios_base::streamoff>::value), "");  static_assert((std::is_signed<std::ios_base::streamoff>::value), ""); +#endif  } 
diff --git a/test/std/depr/depr.ios.members/streampos.pass.cpp b/test/std/depr/depr.ios.members/streampos.pass.cpp index 315118c..863905f 100644 --- a/test/std/depr/depr.ios.members/streampos.pass.cpp +++ b/test/std/depr/depr.ios.members/streampos.pass.cpp 
@@ -15,10 +15,15 @@  // typedef POS_T streampos;  // };   +// These members were removed for C++17 + +#include "test_macros.h"  #include <ios>  #include <type_traits>    int main()  { +#if TEST_STD_VER <= 14  static_assert((std::is_same<std::ios_base::streampos, std::streampos>::value), ""); +#endif  } 
diff --git a/www/cxx1z_status.html b/www/cxx1z_status.html index ce5afd8..73d8a1c 100644 --- a/www/cxx1z_status.html +++ b/www/cxx1z_status.html 
@@ -70,7 +70,7 @@ 	<tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4366">N4366</a></td><td>LWG</td></td><td>LWG 2228 missing SFINAE rule</td><td>Lenexa</td><td>Complete</td><td>3.1</td></tr> 	<tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4510">N4510</a></td><td>LWG</td></td><td>Minimal incomplete type support for standard containers, revision 4</td><td>Lenexa</td><td>Complete</td><td>3.6</td></tr> 	<tr><td></td><td></td><td></td><td></td><td></td><td></td></tr> -	<tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/P0004R1.html">P0004R1</a></td><td>LWG</td><td>Remove Deprecated iostreams aliases.</td><td>Kona</td><td></td><td></td></tr> +	<tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/P0004R1.html">P0004R1</a></td><td>LWG</td><td>Remove Deprecated iostreams aliases.</td><td>Kona</td><td>Complete</td><td>3.8</td></tr> 	<tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/P0006R0.html">P0006R0</a></td><td>LWG</td><td>Adopt Type Traits Variable Templates for C++17.</td><td>Kona</td><td>In progress</td><td></td></tr> 	<tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/P0092R1.html">P0092R1</a></td><td>LWG</td><td>Polishing &lt;chrono&gt;</td><td>Kona</td><td></td><td></td></tr> 	<tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/P0007R1.html">P0007R1</a></td><td>LWG</td><td>Constant View: A proposal for a <tt>std::as_const</tt> helper function template.</td><td>Kona</td><td>In progress</td><td></td></tr>